home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / broker_ftp.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  112 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10556);
  10.  script_bugtraq_id(301);
  11.  script_cve_id("CAN-2001-0450");
  12.  script_version ("$Revision: 1.17 $");
  13.  
  14.  name["english"] = "Broker FTP files listing";
  15.  name["francais"] = "Broker FTP Files listing";
  16.  script_name(english:name["english"], francais:name["francais"]);
  17.  
  18.  desc["english"] = "
  19. Some versions of Broker FTP (www.ftp-broker.com) allow
  20. any anonymous user to browse the entire remote disk 
  21. by issuing a command like :
  22.  
  23.     LIST C:\
  24.     
  25.  
  26. Solution : upgrade to the latest version
  27. Risk factor : High";
  28.  
  29.  
  30.  desc["francais"] = "
  31. Certaines versions de Broker FTP (www.ftp-broker.com) permettent
  32. α des utilisateurs anonymes de browser sur le disque distant
  33. en faisant la commande :
  34.  
  35.     LIST C:\
  36.     
  37. Solution : mettez α jour votre serveur FTP
  38. Facteur de risque : ElevΘ";
  39.  
  40.  
  41.  script_description(english:desc["english"], francais:desc["francais"]);
  42.  
  43.  summary["english"] = "Attempts to get the listing of the remote root dir";
  44.  summary["francais"] = "Essaye d'obtenir le listing du contenu de C:";
  45.  script_summary(english:summary["english"], francais:summary["francais"]);
  46.  
  47.  script_category(ACT_GATHER_INFO);
  48.  
  49.  
  50.  script_copyright(english:"This script is Copyright (C) 2000 Renaud Deraison",
  51.         francais:"Ce script est Copyright (C) 2000 Renaud Deraison");
  52.  family["english"] = "FTP";
  53.  family["francais"] = "FTP";
  54.  script_family(english:family["english"], francais:family["francais"]);
  55.  script_dependencie("find_service.nes", "ftp_anonymous.nasl");
  56.  script_require_keys("ftp/login");
  57.  script_exclude_keys("ftp/ncftpd", "ftp/msftpd");
  58.  script_require_ports("Services/ftp", 21);
  59.  exit(0);
  60. }
  61.  
  62. #
  63. # The script code starts here
  64. #
  65.  
  66. include("ftp_func.inc");
  67.  
  68. port = get_kb_item("Services/ftp");
  69. if(!port)
  70. port = 21;
  71.  
  72. if(!get_port_state(port))exit(0);
  73.  
  74.  
  75. soc = open_sock_tcp(port);
  76. if(soc)
  77. {
  78.  if(ftp_log_in(socket:soc, user:"anonymous", pass:string("nessus@", get_host_name())))
  79. {
  80.  p = ftp_get_pasv_port(socket:soc);
  81.  soc2 = open_sock_tcp(p, transport:get_port_transport(port));
  82.  if(soc2)
  83.  {
  84.   s = string("LIST C:\\\r\n");
  85.   send(socket:soc, data:s);
  86.   r = ftp_recv_line(socket:soc);
  87.   if(ereg(pattern:"^150 ", string:r))
  88.   {
  89.       r = ftp_recv_listing(socket:soc2);
  90.       if(r)
  91.       {
  92.     if("No such file or directory" >< r)exit(0);
  93.       w = string("It was possible to get the listing of the remote root\n",
  94. "directory by issuing the command\n\n",
  95. "LIST C:\\\n",
  96. "The data we could get is :\n",
  97. r, "\n",
  98. "An attacker may use this flaw to retrieve arbitrary files on this\n",
  99. "server.\n",
  100. "Solution : if you are using broker ftp, upgrade to the latest version, or\n",
  101. "contact your vendor for a patch\n",
  102. "Risk factor : High");
  103.   security_hole(port:port, data:w);
  104.      }
  105.   }
  106.  close(soc);
  107.  close(soc2);
  108.  }
  109. }
  110. }
  111.  
  112.